package module;

import org.resotc.dao.CentroidDAO;
import org.resotc.dao.IntersectionDAO;
import org.resotc.dao.LaneDAO;
import org.resotc.dao.QueueDAO;
import org.resotc.dao.StreetDAO;
import org.resotc.dao.TrackDAO;

import com.google.inject.AbstractModule;

public class StartUpModule extends AbstractModule {
	private IntersectionDAO intersectionDAO;
	private CentroidDAO centroidDAO;
	private LaneDAO laneDAO;
	private StreetDAO streetDAO;
	private TrackDAO trackDAO;
	private QueueDAO queueDAO;

	public StartUpModule(IntersectionDAO intersectionDAO, CentroidDAO centroidDAO, LaneDAO laneDAO,
			StreetDAO streetDAO, TrackDAO trackDAO, QueueDAO queueDAO) {
		this.intersectionDAO = intersectionDAO;
		this.centroidDAO = centroidDAO;
		this.laneDAO = laneDAO;
		this.streetDAO = streetDAO;
		this.trackDAO = trackDAO;
		this.queueDAO = queueDAO;
	}

	@Override
	protected void configure() {
		bind(IntersectionDAO.class).toInstance(intersectionDAO);
		bind(CentroidDAO.class).toInstance(centroidDAO);
		bind(LaneDAO.class).toInstance(laneDAO);
		bind(StreetDAO.class).toInstance(streetDAO);
		bind(TrackDAO.class).toInstance(trackDAO);
		bind(QueueDAO.class).toInstance(queueDAO);
	}
}
